summaryrefslogtreecommitdiff
path: root/ui/routes/(app)/c/[conversation]/+page.svelte
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2025-07-01 15:40:11 -0400
committerOwen Jacobson <owen@grimoire.ca>2025-07-03 22:43:44 -0400
commit9b38cb1a62ede4900fde4ba47a7b065db329e994 (patch)
treeabf0b9d993ef03a53903aae03f375b78473952da /ui/routes/(app)/c/[conversation]/+page.svelte
parent1cafeb5ec92c1dc4ad74fbed58b15a8ab2f3c0cf (diff)
Rename "channel" to "conversation" throughout the client.
Existing client state, stored in local storage, is migrated to new keys (that mention "conversation" instead of "channel" where appropriate) the first time the client loads.
Diffstat (limited to 'ui/routes/(app)/c/[conversation]/+page.svelte')
-rw-r--r--ui/routes/(app)/c/[conversation]/+page.svelte28
1 files changed, 16 insertions, 12 deletions
diff --git a/ui/routes/(app)/c/[conversation]/+page.svelte b/ui/routes/(app)/c/[conversation]/+page.svelte
index 4d2cc86..e6cd845 100644
--- a/ui/routes/(app)/c/[conversation]/+page.svelte
+++ b/ui/routes/(app)/c/[conversation]/+page.svelte
@@ -8,14 +8,18 @@
const { data } = $props();
const { session, outbox } = data;
- let activeChannel;
+ let activeConversation;
- const channelId = $derived(page.params.conversation);
- const channel = $derived(session.channels.find((channel) => channel.id === channelId));
+ const conversationId = $derived(page.params.conversation);
+ const conversation = $derived(
+ session.conversations.find((conversation) => conversation.id === conversationId),
+ );
const messages = $derived(
- session.messages.filter((message) => message.conversation === channelId),
+ session.messages.filter((message) => message.conversation === conversationId),
+ );
+ const unsent = $derived(
+ outbox.messages.filter((message) => message.conversation === conversationId),
);
- const unsent = $derived(outbox.messages.filter((message) => message.channel === channelId));
const deleted = $derived(outbox.deleted.map((message) => message.messageId));
const unsentSkeletons = $derived(
unsent.map((message) => message.toSkeleton($state.snapshot(session.currentUser))),
@@ -35,12 +39,12 @@
}
function getLastVisibleMessage() {
- if (activeChannel) {
- const childElements = activeChannel.getElementsByClassName('message');
+ if (activeConversation) {
+ const childElements = activeConversation.getElementsByClassName('message');
const lastInView = Array.from(childElements)
.reverse()
.find((el) => {
- return inView(activeChannel, el);
+ return inView(activeConversation, el);
});
return lastInView;
}
@@ -48,9 +52,9 @@
function setLastRead() {
const lastInView = getLastVisibleMessage();
- const at = !!lastInView ? DateTime.fromISO(lastInView.dataset.at) : channel?.at;
+ const at = !!lastInView ? DateTime.fromISO(lastInView.dataset.at) : conversation?.at;
if (!!at) {
- session.local.updateLastReadAt(channelId, at);
+ session.local.updateLastReadAt(conversationId, at);
}
}
@@ -79,7 +83,7 @@
}
async function sendMessage(message) {
- outbox.postToChannel(channelId, message);
+ outbox.sendToConversation(conversationId, message);
}
async function deleteMessage(id) {
@@ -89,7 +93,7 @@
<svelte:window onkeydown={handleKeydown} />
-<div class="active-channel" {onscroll} bind:this={activeChannel}>
+<div class="active-conversation" {onscroll} bind:this={activeConversation}>
{#each messageRuns as { sender, ownMessage, messages }}
<MessageRun
{sender}